/*
	COMUNICAZIONE SERIALE
*/

/*
	### 19-03-07 ###
	In questa alpha3 sarà sperimentale. Funzionerà a una velocità bassa.
	Non ci saranno controlli di checksum e di parità.
	Potrà comunicare per ora solo in loopback. Più avanti estenderò il
	supporto anche a MODEM e a COMPUTER. Sfrutterà solo la COM1.
*/

#include<stdio.h>
#include<interrupt.h>

#define	COM_BASE		0x3f8

void recv_serial() {
	char carattere;
	carattere=in_port(COM_BASE);
	putk(carattere,0x7);
}

void send_serial(char info) {
	out_port(COM_BASE,info);
	//printk("SENDING...\n");
}

void init_serial() {
	// inizializazzione dell'UART
	out_port(COM_BASE+3,0x80);		// RCL
	out_port(COM_BASE,60);		// LBR
	out_port(COM_BASE+1,0x0);		// HBR
	out_port(COM_BASE+3,0x7);		// ridifinisco RCL
	out_port(COM_BASE+4,0x10);		// qui andrà in LOOPBACK
	out_port(COM_BASE+1,0x0);		// azzeramento RAI

	//abilito l'irq
	abilita_irq(4,0x21);
}
